package com.nmgs.common;


import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author: shuguang
 * @date: 2022年10月11日 16:27
 * @description: 自定义异常处理类
 */
@RestControllerAdvice
@Slf4j
public class PPExceptionHandler {

    /**
     * 处理业务自定义异常
     */
    @ExceptionHandler(PPException.class)
    public <T> T handlePPException(PPException e) {
        Result res = Result.error(e.getErrorCode(), e.getErrorMessage());
        log.error("异常处理模块出参：{}", JSON.toJSONString(res));
        return (T) JSON.toJSONString(res);
    }


    /**
     * 处理其他异常
     */
    @ExceptionHandler(Exception.class)
    public <T> T handleException(Exception e) {
        log.info(e.getMessage(),e);
        Result res = Result.error(MessageEnum.系统异常.getCode(), MessageEnum.系统异常.getMessage());
        log.error("异常处理模块出参：{}", JSON.toJSONString(res));
        return (T) JSON.toJSONString(res);
    }
}
